As the popularity of the Internet has increased, so has the prevalence of social networking websites and applications. Generally speaking, a social network refers to an application or service that facilitates the building of online communities of people who share interests and activities, or who are interested in exploring the interests and activities of others. Many social networks are web-based and provide a variety of ways for users to interact, such as e-mail and instant messaging services. Some examples of social networks are delicio.us (http://del.icio.us./), facebook (http://www.facebook.com), Flickr (http://www.flickr.com), MySpace (http://www.myspace.com) and others.
Many social networks host social networking applications that add to the usability and user desirability of the social network service. For example, a social network may include an embedded chat/instant messaging application that allows users of the social network service to communicate in substantially real-time with each other. Another example of a social networking application is an online game in which users may play with and/or against each other.
Due to the popularity of many social network services, developers of social networking applications often prefer to develop their applications for many social network services in order to broaden the applications' audiences. However, this often requires developers to develop different versions of their applications for each social network, because different social networks may use different application program interfaces (APIs) and/or other different technologies. Accordingly, to update a particular social networking application, the developer must update each different version of the application, which may be laborious, inefficient, and prone to introduction of bugs.
In addition, because different social networking services typically use different versions of a particular social networking application, users of an application on one social networking service have historically been unable to interact with users of a corresponding application on another social networking service.
While certain approaches have been utilized to allow cross-network interaction in applications, such approaches have disadvantages. For example, many cross-network social networking applications utilize OpenSocial, an application programming interface that defines common application functionality across many social networks. However, the common application functionality is often merely a common subset or “lowest common denominator” of functionality for all social networks upon which the application executes. Such an approach may be undesirable, as it does not allow use of functionality or extensions supported by some social networks, but not others. Stated another way, if one social network supports particular application functionality and another social network does not, the common application generally does not include the particular functionality.